package com.zy.controller.common;

import com.zy.utils.MongodbUtils;
import lombok.extern.java.Log;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

@RestController
@CrossOrigin
@Log
public class CommonController {

    @Resource
    private MongodbUtils mongodbUtils;

    /**
     * 文件上传
     * @param file 上传的文件
     * @return 返回值是一个文件属性的id
     * @throws Exception io异常
     */
    @RequestMapping("/upload")
    private Object upload(@RequestParam("file") MultipartFile file) throws Exception {
        return mongodbUtils.upload(file);
    }

    /**
     * 文件下载 如果是图片可以直接通过<img src='这个方法的访问路径加上文件的id'>
     * @param objectId 通过文件上传获取的文件id
     * @param response 用于io
     * @throws Exception io异常
     */
    @RequestMapping("/download")
    public void download(String objectId, HttpServletResponse response) throws Exception {
        mongodbUtils.down(objectId, response);
    }


    /**
     * 根据文件 id 删除mongodb的文件
     * @param objectId id
     * @return 返回结果 可能会有不存在的id
     */
    @RequestMapping("/deleteFile")
    public String deleteFile(String objectId) {
        return mongodbUtils.deleteFile(objectId);
    }
}
